package com.oop.ch06;

/**
 * 宠物的主人类
 */
public class Matser {
	
	//主人和宠物玩
	public void play(Pet pet){
		// 父类的对象 👈= instanceof = 👉 子类的类型
		//instanceof判断左边的对象是不是和右边的子类类型一直
		if(pet instanceof Dog){
			//强制类型转换---向下转型
			Dog dog=(Dog)pet;
			dog.fly();
		}else {
			Cat cat=(Cat)pet;
			cat.run();
		}
	}
	
	//feed---喂食的方法
	//方法的重载---方法名称相同 参数不同，和返回值无关
	
	/**
	 * 根据宠物类型id领养宠物
	 * @param typeId
	 * @return Pet
	 */
	public Pet getPet(int typeId){
		if(typeId==1){//领养的是狗狗
			System.out.println("狗狗被领养");
			return new Dog();
		}else {//领养的是小猫
			System.out.println("小猫被领养");
			return new Cat();
		}
	}
	
	public void feed(Pet pet){
		System.out.print("主人给"+(pet instanceof Dog ? "小狗" : "小猫")+"喂食：");
		pet.eat();
	}
	
	// //主人给小狗喂食的方法
	// public void feed(Dog dog){
	// 	System.out.println("主人给小狗喂食");
	// 	dog.eat();
	// }
	//
	// //主人给小猫喂食的方法
	// public void feed(Cat cat){
	// 	System.out.println("主人给小猫喂食");
	// 	cat.eat();
	// }
	
	// //主人给小猫喂食的方法
	// public void feed(XXX xxx){
	// 	System.out.println("主人给xxx喂食");
	// 	xxx.eat();
	// }
}
